<?php

/*
 * Modelo: "datos_ave.php"
 * Copyright 2011 SISVOX.
 *
 * Licenciado bajo SISVOX, Version 1.0 (la "Licencia");
 * El codigo presente que compone este Software es propiedad unica y
 * exclusivamente de SISVOX, por lo tanto, usted no podrá utilizar este
 * archivo excepto en cumplimiento de la Licencia ofrecida por SISVOX.
 * Usted puede obtener una copia de la Licencia en:
 *
 *      Soluciones Integrales de Software Vox (SISVOX)
 *                 http://www.sisvox.com
 *
 *     - Carlos Calvo      <ccalvo@sisvox.com>
 *     - Andres Hernandez  <ahernandez@sisvox.com>
 *
 * A menos que sea requerido por la ley aplicable o se acuerde por escrito,
 * el software distribuido bajo la licencia se distribuye "TAL CUAL", CON
 * LAS GARANTIAS Y CONDICIONES expresadas en la "Licencia".
 */


@include_once("sopor_sen.php");
@include_once("datos_sem.php");
@include_once("parroquia.php");
@include_once("sector.php");
@include_once("usuario.php");

class Datos_ave {
	
    /* Nombre de las Variables del Modelo (INFORMATIVO)
    +------------------+-------------+------+-----+---------+----------------+
	| Field            | Type        | Null | Key | Default | Extra          |
	+------------------+-------------+------+-----+---------+----------------+
	| id_averia        | int(11)     | NO   | PRI | NULL    | auto_increment |
	| id_senal         | int(11)     | NO   |     | NULL    |                |
	| fecha_averia     | date        | NO   |     | NULL    |                |
	| login_registro   | varchar(16) | NO   |     | NULL    |                |
	| fecha_registro   | datetime    | NO   |     | NULL    |                |
	| login_reparacion | varchar(16) | YES  |     | NULL    |                |
	| fecha_reparacion | datetime    | YES  |     | NULL    |                |
	| id_motiv_ave     | int(11)     | NO   |     | NULL    |                |
	| id_status_ave    | int(11)     | NO   |     | NULL    |                |
	| observaciones    | text        | YES  |     | NULL    |                |
	+------------------+-------------+------+-----+---------+----------------+
	*/
    
    // Variable para los resultados de las Consultas
    private $respuesta;
	
	// Tablas del Modelo
    private $tsmist_datos_ave 		= "smist_datos_ave";
	private $tsmist_motiv_ave 		= "smist_motiv_ave";
	private $tsmist_status_ave 		= "smist_status_ave";
	private $tsmist_datos_sen 		= "smist_datos_sen";
	private $tsmist_tipo_sen 		= "smist_tipo_sen";
	private $tsmist_categ_sen 		= "smist_categ_sen";
	private $tsmist_senal_tra 		= "smist_senal_tra";
	private $tsmist_estad_sen 		= "smist_estad_sen";
	private $tsmist_tipo_via 		= "smist_tipo_via";
	private $tparroquia 			= "parroquia";
	private $tsector 				= "sector";
	
	
    // =================================================================================================================
    //	FUNCION - INSERTAR LOS DATOS DE UNA AVERIA
    // =================================================================================================================
	
    public function insertar_datos_ave( $id_senal, $fecha_averia, $id_motiv_ave, $login_registro, $observaciones ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Agregar la Avería (Problemas en la Conexión): ".$conexion->getLastMessage();
			$this->retorno[2] = "-1";
            return $this->retorno;
        }
        else
        {
			$fmt_fecha_ave	= $conexion->darFormatoFecha($fecha_averia);
			$fecha_actual 	= $conexion->getSQLTimeStamp();
			
			$sql = "insert into ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_ave ( id_senal, fecha_averia, login_registro, fecha_registro, id_motiv_ave, id_status_ave, observaciones ) 
					values ( $id_senal, $fmt_fecha_ave, '$login_registro', $fecha_actual, $id_motiv_ave, 1, ";
			
			if ( $observaciones != "" ) {
				$sql .= "'$observaciones' )";
			} else {
				$sql .= "null )";
			}
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Agregar la Avería: ".$conexion->getLastMessage();
				$this->retorno[2] = "-1";
            }
            else
            {
            	$id = $conexion->buscarUltimoInsertID();
				
                $this->retorno[0] = "S";
                $this->retorno[1] = "La Avería se ha Agregado con Exito con el ID: ".$id;
				$this->retorno[2] = $id;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
    // =================================================================================================================
    //	FUNCION - MODIFICAR LOS DATOS DE UNA AVERIA
    // =================================================================================================================
	
    public function modificar_datos_ave( $id_averia, $id_motiv_ave, $id_status_ave, $login_reparacion, $fecha_reparacion, $observaciones ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Modificar la Avería (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
			$sql = "update ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_ave set 
						id_motiv_ave = $id_motiv_ave, 
						id_status_ave = $id_status_ave, ";
			
			if ( $fecha_reparacion != "" ) {
				$fmt_fecha_rep	= $conexion->darFormatoFecha($fecha_reparacion);
				$sql .= "login_reparacion = '$login_reparacion', 
						fecha_reparacion = $fmt_fecha_rep, ";
			} else {
				$sql .= "login_reparacion = null, 
						fecha_reparacion = null, ";
			}
			
			if ( $observaciones != "" ) {
				$sql .= "observaciones = '$observaciones' ";
			} else {
				$sql .= "observaciones = null ";
			}
			
			$sql .= "where id_averia = $id_averia";
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Modificar la Avería: ".$conexion->getLastMessage();
            }
            else
            {
                $this->retorno[0] = "S";
                $this->retorno[1] = "La Avería se ha Modificado con Exito";
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR LOS DATOS DE UNA AVERIA DADO SU ID
    // =================================================================================================================
	
    public function consultar_datos_ave( $id_averia ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo hacer la Consulta de la Avería (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
        	$fmt_fecha_ins 		= $conexion->extraerCampoFecha('ds.fecha_instalacion');
			$fmt_fecha_reg_sen 	= $conexion->extraerCampoFechaHora('ds.fecha_registro');
			$fmt_fecha_ave 		= $conexion->extraerCampoFecha('da.fecha_averia');
			$fmt_fecha_reg_ave 	= $conexion->extraerCampoFechaHora('da.fecha_registro');
			$fmt_fecha_rep 		= $conexion->extraerCampoFecha('da.fecha_reparacion');
			
			$sql = "select da.id_averia as id_averia, 
						$fmt_fecha_ave as fecha_averia, 
						da.id_motiv_ave as id_motiv_ave, 
						ma.nombre as nombre_motiv_ave, 
						da.id_status_ave as id_status_ave, 
						sa.nombre as nombre_status_ave, 
						da.id_senal as id_senal, 
						ds.coord_x as coord_x, 
						ds.coord_y as coord_y, 
						ds.id_tipo_sen as id_tipo_sen, 
						t.nombre as nombre_tipo_sen, 
						ds.id_categ_sen as id_categ_sen, 
						c.nombre as nombre_categ_sen, 
						ds.id_senal_tra as id_senal_tra, 
						st.nombre as nombre_senal_tra, 
						ds.desc_image_sen as desc_image_sen, 
						ds.id_estad_sen as id_estad_sen, 
						es.nombre as nombre_estad_sen, 
						ds.id_status_sen as id_status_sen, 
						$fmt_fecha_ins as fecha_instalacion, 
						ds.estandar as estandar, 
						ds.id_parroquia as id_parroquia, 
						ds.id_sector as id_sector,
						ds.id_tipo_via as id_tipo_via, 
						tv.nombre as nombre_tipo_via,
						ds.referencia as referencia, 
						ds.login_registro as login_registro_sen, 
						$fmt_fecha_reg_sen as fecha_registro_sen, 
						ds.observaciones as observaciones_sen, 
						da.login_registro as login_registro_ave, 
						$fmt_fecha_reg_ave as fecha_registro_ave, 
						da.login_reparacion as login_reparacion, 
						$fmt_fecha_rep as fecha_reparacion, 
						da.observaciones as observaciones_ave
					from ".$_SESSION['db_smist_WS'].$_SESSION['schema_db'].".$this->tsmist_datos_ave as da, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_motiv_ave as ma, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_status_ave as sa, 
						".$_SESSION['db_smist_WS'].$_SESSION['schema_db'].".$this->tsmist_datos_sen as ds, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_tipo_sen as t, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_categ_sen as c, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_senal_tra as st, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_estad_sen as es, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_tipo_via as tv 
					where da.id_averia = $id_averia and 
						da.id_motiv_ave = ma.id_motiv_ave and 
						da.id_status_ave = sa.id_status_ave and 
						da.id_senal = ds.id_senal and 
						ds.id_tipo_sen = t.id_tipo_sen and 
						ds.id_categ_sen = c.id_categ_sen and 
						ds.id_senal_tra = st.id_senal_tra and 
						ds.id_estad_sen = es.id_estad_sen and 
						ds.id_tipo_via = tv.id_tipo_via";	
			
			$this->respuesta = $conexion->consultar($sql);
			
			$temparray = $this->respuesta->buscar_fila();
						
            if(!temparray)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo hacer la Consulta de la Avería: ".$conexion->getLastMessage();
            }
            else
            {
				// Si se encontro un Resultado con el ID dado
				if ( $temparray['id_averia'] != "" ) 
				{
					$_xml="<datos_ave>";
					$id_senal			= $temparray['id_senal'];
						
					$_xml.="<id_averia>".$temparray['id_averia']."</id_averia>";
					$_xml.="<id_senal>".$temparray['id_senal']."</id_senal>";
					$_xml.="<coord_x>".$temparray['coord_x']."</coord_x>";
					$_xml.="<coord_y>".$temparray['coord_y']."</coord_y>";
					
					$id_tipo_sen 		= $temparray['id_tipo_sen'];
					$_xml.="<id_tipo_sen>".$temparray['id_tipo_sen']."</id_tipo_sen>";
					$_xml.="<nombre_tipo_sen>".utf8_encode(strtoupper($temparray['nombre_tipo_sen']))."</nombre_tipo_sen>";
					$_xml.="<id_categ_sen>".$temparray['id_categ_sen']."</id_categ_sen>";
					$_xml.="<nombre_categ_sen>".utf8_encode(strtoupper($temparray['nombre_categ_sen']))."</nombre_categ_sen>";
					$_xml.="<id_senal_tra>".$temparray['id_senal_tra']."</id_senal_tra>";
					$_xml.="<nombre_senal_tra>".utf8_encode(strtoupper($temparray['nombre_senal_tra']))."</nombre_senal_tra>";
					
					if ( $id_tipo_sen == "1" || $id_tipo_sen == "2" || $id_tipo_sen == "3" || $id_tipo_sen == "5" || $id_tipo_sen == "6" || $id_tipo_sen == "7" ) {
						
						// Registramos los Datos del Tipo de Soporte de la Señal
						$sopor_sen			= new Sopor_sen;
						$lista_sopor_sen 	= $sopor_sen->consultar_sopor_sen( $id_senal );
						
						$_xml.="<id_tipo_sop>".$lista_sopor_sen[1]."</id_tipo_sop>";
						$_xml.="<nombre_tipo_sop>".utf8_encode($lista_sopor_sen[2])."</nombre_tipo_sop>";
					}
					
					$_xml.="<id_estad_sen>".$temparray['id_estad_sen']."</id_estad_sen>";
					$_xml.="<nombre_estad_sen>".utf8_encode(strtoupper($temparray['nombre_estad_sen']))."</nombre_estad_sen>";
					
					$_xml.="<id_status_sen>".$temparray['id_status_sen']."</id_status_sen>";
					if ( $temparray['id_status_sen'] == "A" ) {
						$_xml.="<nombre_status_sen>ACTIVO</nombre_status_sen>";
					} else if ( $temparray['id_status_sen'] == "I" ) {
						$_xml.="<nombre_status_sen>INACTIVO</nombre_status_sen>";
					}
					
					$_xml.="<fecha_instalacion>".$temparray['fecha_instalacion']."</fecha_instalacion>";
					$_xml.="<estandar>".strtoupper($temparray['estandar'])."</estandar>";
					
					$_xml.="<desc_image_sen>".$temparray['desc_image_sen']."</desc_image_sen>";
					
					if ( $id_tipo_sen == "9" ) {
						
						// Consultamos los Datos del Semaforo
						$datos_sem			= new Datos_sem;
						$lista_datos_sem 	= $datos_sem->consultar_datos_sem( $id_senal );
						
						$_xml.="<id_tipo_sem>".$lista_datos_sem[1]."</id_tipo_sem>";
						$_xml.="<nombre_tipo_sem>".utf8_encode($lista_datos_sem[2])."</nombre_tipo_sem>";
						$_xml.="<temporizador>".$lista_datos_sem[3]."</temporizador>";
						$_xml.="<control>".$lista_datos_sem[4]."</control>";
						$_xml.="<nro_semaf>".$lista_datos_sem[5]."</nro_semaf>";
					}
					
					$_xml.="<id_parroquia>".$temparray['id_parroquia']."</id_parroquia>";
					if ( $temparray['id_parroquia'] != "" ) {
						// Consultamos el Nombre de la Parroquia
						$parroquia			= new Parroquia;
						$nombre_parroquia   = $parroquia->consultar_nombre( $temparray['id_parroquia'] );
						$_xml.="<parroquia>".utf8_encode(strtoupper($nombre_parroquia))."</parroquia>";
					} else {
						$_xml.="<parroquia></parroquia>";
					}
					
					$_xml.="<id_sector>".$temparray['id_sector']."</id_sector>";
					if ( $temparray['id_sector'] != "" ) {
						// Consultamos el Nombre de la Sector
						$sector				= new Sector;
						$nombre_sector  	= $sector->consultar_nombre( $temparray['id_sector'] );
						$_xml.="<sector>".utf8_encode(strtoupper($nombre_sector))."</sector>";
					} else {
						$_xml.="<sector></sector>";
					}
					
					$_xml.="<id_tipo_via>".$temparray['id_tipo_via']."</id_tipo_via>";
					$_xml.="<nombre_tipo_via>".utf8_encode(strtoupper($temparray['nombre_tipo_via']))."</nombre_tipo_via>";
					$_xml.="<referencia>".utf8_encode(strtoupper($temparray['referencia']))."</referencia>";
					
					$login_registro_sen = $temparray['login_registro_sen'];
					$_xml.="<login_registro_sen>".$login_registro_sen."</login_registro_sen>";
					
					// Consultamos el Nombre completo del Usuario
					$usuario				= new Usuario;
					$nombre_usuario_reg_sen = $usuario->consultar_nombre_usuario($login_registro_sen);
					$_xml.="<nombre_usuario_reg_sen>".utf8_encode($nombre_usuario_reg_sen)."</nombre_usuario_reg_sen>";
					$_xml.="<fecha_registro_sen>".$temparray['fecha_registro_sen']."</fecha_registro_sen>";
					$_xml.="<observaciones_sen>".utf8_encode(strtoupper($temparray['observaciones_sen']))."</observaciones_sen>";
					
					$_xml.="<fecha_averia>".$temparray['fecha_averia']."</fecha_averia>";
					$_xml.="<id_motiv_ave>".$temparray['id_motiv_ave']."</id_motiv_ave>";
					$_xml.="<nombre_motiv_ave>".utf8_encode(strtoupper($temparray['nombre_motiv_ave']))."</nombre_motiv_ave>";
					$_xml.="<id_status_ave>".$temparray['id_status_ave']."</id_status_ave>";
					$_xml.="<nombre_status_ave>".utf8_encode(strtoupper($temparray['nombre_status_ave']))."</nombre_status_ave>";
					
					$login_registro_ave = $temparray['login_registro_ave'];
					$_xml.="<login_registro_ave>".$login_registro_ave."</login_registro_ave>";
					
					// Consultamos el Nombre completo del Usuario
					$usuario				= new Usuario;
					$nombre_usuario_reg_ave = $usuario->consultar_nombre_usuario($login_registro_ave);
					$_xml.="<nombre_usuario_reg_ave>".utf8_encode($nombre_usuario_reg_ave)."</nombre_usuario_reg_ave>";
					$_xml.="<fecha_registro_ave>".$temparray['fecha_registro_ave']."</fecha_registro_ave>";
					
					$login_reparacion = $temparray['login_reparacion'];
					if ( $login_reparacion != "" ) {
						$_xml.="<login_reparacion>".$login_reparacion."</login_reparacion>";
					
						// Consultamos el Nombre completo del Usuario
						$usuario				= new Usuario;
						$nombre_usuario_rep = $usuario->consultar_nombre_usuario($login_reparacion);
						$_xml.="<nombre_usuario_rep>".utf8_encode($nombre_usuario_rep)."</nombre_usuario_rep>";
						$_xml.="<fecha_reparacion>".$temparray['fecha_reparacion']."</fecha_reparacion>";
					} else {
						$_xml.="<login_reparacion></login_reparacion>";
					}
					
					$_xml.="<observaciones_ave>".utf8_encode(strtoupper($temparray['observaciones_ave']))."</observaciones_ave>";
					
					$_xml.="</datos_ave>";
				}
				// Si no se encontro ningun Resultado con el ID dado
				else
				{
					$_xml="<datos_ave>";
					$_xml.="VACIO";
					$_xml.="</datos_ave>";
				}
				
                $this->retorno[0] = "S";
                $this->retorno[1] = $_xml;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR LOS DATOS DE UNA AVERIA DADO SU ID PARA ACTUALIZAR/ADJUNTAR
    // =================================================================================================================
	
    public function buscar_datos_ave( $id_averia ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo hacer la Consulta de la Avería (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
        	$fmt_fecha_ave 	= $conexion->extraerCampoFecha('da.fecha_averia');
			$fmt_fecha_reg 	= $conexion->extraerCampoFechaHora('da.fecha_registro');
			$fmt_fecha_rep 	= $conexion->extraerCampoFechaHora('da.fecha_reparacion');
			
			$sql = "select da.id_averia as id_averia, 
						$fmt_fecha_ave as fecha_averia, 
						da.id_motiv_ave as id_motiv_ave, 
						ma.nombre as nombre_motiv_ave, 
						da.id_status_ave as id_status_ave, 
						sa.nombre as nombre_status_ave, 
						da.id_senal as id_senal,
						ds.id_tipo_sen as id_tipo_sen, 
						t.nombre as nombre_tipo_sen, 
						ds.id_categ_sen as id_categ_sen, 
						c.nombre as nombre_categ_sen, 
						ds.id_senal_tra as id_senal_tra, 
						st.nombre as nombre_senal_tra, 
						ds.desc_image_sen as desc_image_sen, 
						ds.id_parroquia as id_parroquia, 
						ds.id_sector as id_sector,
						ds.id_tipo_via as id_tipo_via, 
						tv.nombre as nombre_tipo_via,
						ds.referencia as referencia, 
						ds.observaciones as observaciones_sen, 
						da.login_registro as login_registro, 
						$fmt_fecha_reg as fecha_registro, 
						da.login_reparacion as login_reparacion, 
						$fmt_fecha_rep as fecha_reparacion, 
						da.observaciones as observaciones_ave
					from ".$_SESSION['db_smist_WS'].$_SESSION['schema_db'].".$this->tsmist_datos_ave as da, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_motiv_ave as ma, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_status_ave as sa, 
						".$_SESSION['db_smist_WS'].$_SESSION['schema_db'].".$this->tsmist_datos_sen as ds, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_tipo_sen as t, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_categ_sen as c, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_senal_tra as st, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_tipo_via as tv 
					where da.id_averia = $id_averia and 
						da.id_motiv_ave = ma.id_motiv_ave and 
						da.id_status_ave = sa.id_status_ave and 
						da.id_senal = ds.id_senal and 
						ds.id_tipo_sen = t.id_tipo_sen and 
						ds.id_categ_sen = c.id_categ_sen and 
						ds.id_senal_tra = st.id_senal_tra and 
						ds.id_tipo_via = tv.id_tipo_via";	
			
			$this->respuesta = $conexion->consultar($sql);
			
			$temparray = $this->respuesta->buscar_fila();
						
            if(!temparray)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo hacer la Consulta de la Avería: ".$conexion->getLastMessage();
            }
            else
            {
				// Si se encontro un Resultado con el ID dado
				if ( $temparray['id_averia'] != "" ) 
				{
					$_xml="<datos_ave>";
					$id_senal			= $temparray['id_senal'];
						
					$_xml.="<id_averia>".$temparray['id_averia']."</id_averia>";
					$_xml.="<id_senal>".$temparray['id_senal']."</id_senal>";
					
					$_xml.="<id_tipo_sen>".$temparray['id_tipo_sen']."</id_tipo_sen>";
					$_xml.="<nombre_tipo_sen>".utf8_encode(strtoupper($temparray['nombre_tipo_sen']))."</nombre_tipo_sen>";
					$_xml.="<id_categ_sen>".$temparray['id_categ_sen']."</id_categ_sen>";
					$_xml.="<nombre_categ_sen>".utf8_encode(strtoupper($temparray['nombre_categ_sen']))."</nombre_categ_sen>";
					$_xml.="<id_senal_tra>".$temparray['id_senal_tra']."</id_senal_tra>";
					$_xml.="<nombre_senal_tra>".utf8_encode(strtoupper($temparray['nombre_senal_tra']))."</nombre_senal_tra>";
					
					$_xml.="<desc_image_sen>".$temparray['desc_image_sen']."</desc_image_sen>";
					
					$_xml.="<id_parroquia>".$temparray['id_parroquia']."</id_parroquia>";
					if ( $temparray['id_parroquia'] != "" ) {
						// Consultamos el Nombre de la Parroquia
						$parroquia			= new Parroquia;
						$nombre_parroquia   = $parroquia->consultar_nombre( $temparray['id_parroquia'] );
						$_xml.="<parroquia>".utf8_encode(strtoupper($nombre_parroquia))."</parroquia>";
					} else {
						$_xml.="<parroquia></parroquia>";
					}
					
					$_xml.="<id_sector>".$temparray['id_sector']."</id_sector>";
					if ( $temparray['id_sector'] != "" ) {
						// Consultamos el Nombre de la Sector
						$sector				= new Sector;
						$nombre_sector  	= $sector->consultar_nombre( $temparray['id_sector'] );
						$_xml.="<sector>".utf8_encode(strtoupper($nombre_sector))."</sector>";
					} else {
						$_xml.="<sector></sector>";
					}
					
					$_xml.="<id_tipo_via>".$temparray['id_tipo_via']."</id_tipo_via>";
					$_xml.="<nombre_tipo_via>".utf8_encode(strtoupper($temparray['nombre_tipo_via']))."</nombre_tipo_via>";
					$_xml.="<referencia>".utf8_encode(strtoupper($temparray['referencia']))."</referencia>";
					
					$_xml.="<observaciones_sen>".utf8_encode(strtoupper($temparray['observaciones_sen']))."</observaciones_sen>";
					
					$_xml.="<fecha_averia>".$temparray['fecha_averia']."</fecha_averia>";
					$_xml.="<id_motiv_ave>".$temparray['id_motiv_ave']."</id_motiv_ave>";
					$_xml.="<nombre_motiv_ave>".utf8_encode(strtoupper($temparray['nombre_motiv_ave']))."</nombre_motiv_ave>";
					$_xml.="<id_status_ave>".$temparray['id_status_ave']."</id_status_ave>";
					$_xml.="<nombre_status_ave>".utf8_encode(strtoupper($temparray['nombre_status_ave']))."</nombre_status_ave>";
					$_xml.="<observaciones_ave>".utf8_encode(strtoupper($temparray['observaciones_ave']))."</observaciones_ave>";
					
					$_xml.="</datos_ave>";
				}
				// Si no se encontro ningun Resultado con el ID dado
				else
				{
					$_xml="<datos_ave>";
					$_xml.="VACIO";
					$_xml.="</datos_ave>";
				}
				
                $this->retorno[0] = "S";
                $this->retorno[1] = $_xml;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR LOS DATOS DE UNA AVERIA DADO SU ID PARA SU MODIFICACIÓN
    // =================================================================================================================
	
    public function consultar_modificar_datos_ave( $id_averia ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo hacer la Consulta de la Avería (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
        	$fmt_fecha_ave 	= $conexion->extraerCampoFecha('da.fecha_averia');
			$fmt_fecha_reg 	= $conexion->extraerCampoFechaHora('da.fecha_registro');
			$fmt_fecha_rep 	= $conexion->extraerCampoFecha('da.fecha_reparacion');
			
			$sql = "select da.id_averia as id_averia, 
						$fmt_fecha_ave as fecha_averia, 
						da.id_motiv_ave as id_motiv_ave, 
						m.nombre as nombre_motiv_ave, 
						da.id_status_ave as id_status_ave,
						sa.nombre as nombre_status_ave,  
						da.id_senal as id_senal, 
						ds.id_tipo_sen as id_tipo_sen, 
						t.nombre as nombre_tipo_sen, 
						ds.id_categ_sen as id_categ_sen, 
						c.nombre as nombre_categ_sen, 
						ds.id_senal_tra as id_senal_tra, 
						st.nombre as nombre_senal_tra, 
						ds.desc_image_sen as desc_image_sen, 
						ds.id_parroquia as id_parroquia, 
						ds.id_sector as id_sector,
						ds.id_tipo_via as id_tipo_via, 
						tv.nombre as nombre_tipo_via,
						ds.referencia as referencia, 
						ds.observaciones as observaciones_sen, 
						da.login_registro as login_registro, 
						$fmt_fecha_reg as fecha_registro, 
						da.login_reparacion as login_reparacion, 
						$fmt_fecha_rep as fecha_reparacion, 
						da.observaciones as observaciones_ave
					from ".$_SESSION['db_smist_WS'].$_SESSION['schema_db'].".$this->tsmist_datos_ave as da, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_motiv_ave as m, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_status_ave as sa, 
						".$_SESSION['db_smist_WS'].$_SESSION['schema_db'].".$this->tsmist_datos_sen as ds, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_tipo_sen as t, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_categ_sen as c, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_senal_tra as st, 
						".$_SESSION['db_smist_base_WS'].$_SESSION['schema_db'].".$this->tsmist_tipo_via as tv 
					where da.id_averia = $id_averia and 
						da.id_senal = ds.id_senal and 
						da.id_motiv_ave = m.id_motiv_ave and 
						da.id_status_ave = sa.id_status_ave and 
						ds.id_tipo_sen = t.id_tipo_sen and 
						ds.id_categ_sen = c.id_categ_sen and 
						ds.id_senal_tra = st.id_senal_tra and 
						ds.id_tipo_via = tv.id_tipo_via";	
			
			$this->respuesta = $conexion->consultar($sql);
			
			$temparray = $this->respuesta->buscar_fila();
						
            if(!temparray)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo hacer la Consulta de la Avería: ".$conexion->getLastMessage();
            }
            else
            {
				// Si se encontro un Resultado con el ID dado
				if ( $temparray['id_averia'] != "" ) 
				{
					$_xml="<datos_ave>";
					$id_senal			= $temparray['id_senal'];
						
					$_xml.="<id_averia>".$temparray['id_averia']."</id_averia>";
					$_xml.="<id_senal>".$temparray['id_senal']."</id_senal>";
					
					$id_tipo_sen 		= $temparray['id_tipo_sen'];
					$_xml.="<id_tipo_sen>".$temparray['id_tipo_sen']."</id_tipo_sen>";
					$_xml.="<nombre_tipo_sen>".utf8_encode(strtoupper($temparray['nombre_tipo_sen']))."</nombre_tipo_sen>";
					$_xml.="<id_categ_sen>".$temparray['id_categ_sen']."</id_categ_sen>";
					$_xml.="<nombre_categ_sen>".utf8_encode(strtoupper($temparray['nombre_categ_sen']))."</nombre_categ_sen>";
					$_xml.="<id_senal_tra>".$temparray['id_senal_tra']."</id_senal_tra>";
					$_xml.="<nombre_senal_tra>".utf8_encode(strtoupper($temparray['nombre_senal_tra']))."</nombre_senal_tra>";
					
					$_xml.="<desc_image_sen>".$temparray['desc_image_sen']."</desc_image_sen>";
					
					$_xml.="<id_parroquia>".$temparray['id_parroquia']."</id_parroquia>";
					if ( $temparray['id_parroquia'] != "" ) {
						// Consultamos el Nombre de la Parroquia
						$parroquia			= new Parroquia;
						$nombre_parroquia   = $parroquia->consultar_nombre( $temparray['id_parroquia'] );
						$_xml.="<parroquia>".utf8_encode(strtoupper($nombre_parroquia))."</parroquia>";
					} else {
						$_xml.="<parroquia></parroquia>";
					}
					
					$_xml.="<id_sector>".$temparray['id_sector']."</id_sector>";
					if ( $temparray['id_sector'] != "" ) {
						// Consultamos el Nombre de la Sector
						$sector				= new Sector;
						$nombre_sector  	= $sector->consultar_nombre( $temparray['id_sector'] );
						$_xml.="<sector>".utf8_encode(strtoupper($nombre_sector))."</sector>";
					} else {
						$_xml.="<sector></sector>";
					}
					
					$_xml.="<id_tipo_via>".$temparray['id_tipo_via']."</id_tipo_via>";
					$_xml.="<nombre_tipo_via>".utf8_encode(strtoupper($temparray['nombre_tipo_via']))."</nombre_tipo_via>";
					$_xml.="<referencia>".utf8_encode(strtoupper($temparray['referencia']))."</referencia>";
					
					$_xml.="<observaciones_sen>".utf8_encode(strtoupper($temparray['observaciones_sen']))."</observaciones_sen>";
					
					$_xml.="<fecha_averia>".$temparray['fecha_averia']."</fecha_averia>";
					$_xml.="<id_motiv_ave>".$temparray['id_motiv_ave']."</id_motiv_ave>";
					$_xml.="<nombre_motiv_ave>".utf8_encode(strtoupper($temparray['nombre_motiv_ave']))."</nombre_motiv_ave>";
					
					$_xml.="<id_status_ave>".$temparray['id_status_ave']."</id_status_ave>";
					$_xml.="<nombre_status_ave>".utf8_encode(strtoupper($temparray['nombre_status_ave']))."</nombre_status_ave>";
					$_xml.="<fecha_reparacion>".$temparray['fecha_reparacion']."</fecha_reparacion>";
					
					$_xml.="<observaciones_ave>".utf8_encode(strtoupper($temparray['observaciones_ave']))."</observaciones_ave>";
					
					$_xml.="</datos_ave>";
				}
				// Si no se encontro ningun Resultado con el ID dado
				else
				{
					$_xml="<datos_ave>";
					$_xml.="VACIO";
					$_xml.="</datos_ave>";
				}
				
                $this->retorno[0] = "S";
                $this->retorno[1] = $_xml;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// =================================================================================================================
    //	FUNCION - SINCRONIZAR LOS DATOS DE UNA AVERIA
    // =================================================================================================================
	
    public function sincronizar_datos_ave( $id_senal, $fecha_averia, $id_motiv_ave, $id_status_ave, $login_registro, $fecha_registro, $observaciones ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Sincronizar la Avería (Problemas en la Conexión): ".$conexion->getLastMessage();
			$this->retorno[2] = "-1";
            return $this->retorno;
        }
        else
        {
			$sql = "insert into ".$_SESSION['db_smist_WS'].$_SESSION['schema_db_WS'].".$this->tsmist_datos_ave ( id_senal, fecha_averia, login_registro, fecha_registro, id_motiv_ave, id_status_ave, observaciones ) 
					values ( $id_senal, '$fecha_averia', '$login_registro', '$fecha_registro', $id_motiv_ave, $id_status_ave, ";
			
			if ( $observaciones != "" ) {
				$sql .= "'$observaciones' )";
			} else {
				$sql .= "null )";
			}
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Sincronizar la Avería: ".$conexion->getLastMessage();
				$this->retorno[2] = "-1";
            }
            else
            {
            	$id = $conexion->buscarUltimoInsertID();
				
                $this->retorno[0] = "S";
                $this->retorno[1] = "La Avería se ha Sincronizado con Exito con el ID: ".$id;
				$this->retorno[2] = $id;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
}
?>